
/**
 * https://leetcode.cn/problems/fruit-into-baskets/submissions/
 * 904. 水果成篮
 * medium, 陈贝纯 2024.08.30
 * 滑动窗口
 */

class Solution {
public:
    int totalFruit(vector<int>& fruits) {
        int dp[100001]={0};
        int d=0;
        int j=0;
        int l=0;
        for(int i=0;i<fruits.size();++i){
            if(!dp[fruits[i]]++)
            d++;
            while(d>2){
                if(--dp[fruits[j]]==0)
                d--;
                j++;
            }
            l=max(l,i-j+1);
        }
        return l;
    }
};
